package net.freestu.sola.web.global;

import java.util.Vector;

/**
* 种子的队列，种子在threadpool中萌发。在系统之中只能存在一个。所以使用单例模式。
* @author 秋刀鱼的滋味
*
*/

public class SeedQueue {
	
	private Vector queue;
	private static SeedQueue singleton;
	
	private SeedQueue(){
		
		queue = new Vector(10, 5);//先创建10个空间装，然后以5个元素进行扩充。
	}
	
	synchronized public static SeedQueue getInstance(){
		
		
		 if(singleton==null){
			  
			  singleton=new SeedQueue();
		  }
		  return singleton;
	}
	
	/**
	 * 取出里面的元素
	 * @return
	 */
	public synchronized String pop(){
		
		int i = queue.size();
		if (i >= 1) {
			String str = (String) queue.get(--i);
			queue.remove(i);
			return str;
		}else {
			return null;
		}
	}
		
	/**
	 * 清除队列里面
	 *
	 */
	synchronized public void clear(){
		queue.clear();
	}
	
	
	/**
	 *加入队列。（同步）
	 */
	public synchronized void push(String str){
		queue.add(str);
	}
	
	
	/**
	 * 队列中的的成员数量
	 * @return
	 */
	public synchronized int members(){
		
		int m = queue.size();
		return m;
	}
	
	public boolean contains(String seed){
		
		return  queue.contains(seed);
	}
	
	
	/**
	 * 测试
	 * @param args
	 */
	public static void main(String[] args){
		
		SeedQueue sq=SeedQueue.getInstance();
		
		sq.push("vava");
		sq.push("vaaaava");
		sq.push("gagaege");
		
		String s=sq.pop();
		
		System.out.println(sq.members());
		System.out.println(s);
		System.out.println(sq.members());
	}
}

